Модель и параметризация.

Файл чертежа примера содержит программу модели, по которой просчитаны некоторые параметры проектируемого изделия. Модель здесь используется для вычисления номиналов некоторых размеров и в качестве демонстрации ввода параметров некоторых элементов оформления. Передача этих параметров произведена через, так называемые, "сохранённые переменные". Модель, как и всякая программа, должна когда-то выполниться, чтобы впоследствии можно было воспользоваться результатами её работы. Запускается на выполнение программа модели вручную, по завершении ввода её текста в файл чертежа, а результаты сохраняются в специально для этого указанные переменные, которые и называются "сохранёнными". Естественно, что до момента их использования на чертеже, они должны уже существовать. Но не обязательно их следует создавать в окончательном виде: впоследствии можно менять их значение, добавлять и, даже, удалять используемые сохранённые переменные. Под удалением понимается либо изменение имени переменной, либо переопределение её типа из вещественной (для размеров) в строковую (что для размеров не допустимо) или, действительно, удаление её из списков объявленных переменных. При удалении в тех местах, где такие переменные использовались в размерах, сохранится последнее их значение. Найти места, где используются сохранённые переменные можно двумя способами: во-первых, просмотром списков размеров на проекциях и при редактировании элементов оформления, во-вторых, с помощью кнопки "Показать на всех проекциях используемые переменные", которая доступна на этапе "Оформление" чертежа. При использовании этой кнопки на чертеже, вместо значений переменных, будут показаны их имена. В таком виде чертёж можно даже распечатать на бумаге, что для сложных чертежей немаловажно.

Изменение значения переменной приводит к коррекции чертежа. Например, если изменить значение переменной “ht”, то автоматически изменится высота строк в таблице на проекции с названием "Технические требования (Таблица)". Хотя не без последствий: строки изменятся, а, вот текст - останется на месте: его перетаскивать придётся вручную. Логика построения и использования программы модели ложится полностью на проектировщика и на его заботе остаётся согласование возможных последующих изменений тех или иных параметров. Это относится и к переменным, которые будут использоваться только в качестве текстовых параметров в элементах оформления таких, как, например, текстовые надписи или обозначения допусков отклонения формы. При изменении длины надписи, может измениться и "посадочное место" элемента оформления и он может перекрыть соседние элементы. В таких случаях проектировщик также должен подправить чертёж вручную. Попутно, следует обратить внимание на два момента: во-первых, размеры таблицы лучше всего составлять по колонкам и строкам: не делать общих габаритных размеров (таблицу будет легко модифицировать), а, во-вторых, текст будет уверенно точно занимать своё место после перемещения в ячейке таблицы, если в текстовых фрагментах использовать функцию "Искать границы ячейки".

Назначение моделирования в программе KEDRWIN - проведение небольших инженерных расчётов, прежде всего, геометрии проектируемого изделия и возможность формализации параметров элементов оформления. Под формализацией здесь понимается замена действительных значений тех или иных параметров на условные (формальные) с последующей подстановкой вместо них, вычисленных и присвоенных значений. Есть ряд встроенных функций, которые позволяют обеспечить обратную связь между реальной геометрией чертежа и программой модели. Например, функции DISTX и DISTY позволяют узнать расстояния вдоль осей между координатами двух точек. Следует заметить, что истинные расстояния могут быть получены только после того, когда разработка чертежа пройдёт этап "Построение истинного изображения всех проекций по заданным размерам". Иначе, эти расстояния будут соответствовать только эскизным. Причём, выполнять команду "Заменить эскизы всех проекций на реальные изображения" на этапе "Оформление" только для этой цели не надо! Функции, которые работают с контурами штриховки (см. AREA, PERIM, CMASX, CMASY) могут использоваться только после того, когда эти контура были определены, то есть после достижения этапа "Оформление", но на этом этапе функция "Модель" недоступна! Поэтому надо сначала на этапе "Оформление" определить штриховку, запомнить автоматически созданные имена контуров, а потом вернуться на любой из этапов до "Построения истинного изображения всех проекций по заданным размерам" и вызвать там модель. Хотя, можно и наоборот. Можно сначала написать программу модели, указать в ней выдуманные Вами имена контуров, а потом, когда эти контура будут создаваться при вводе указателей штриховки, именовать их Вашими именами. Неприятность при таком порядке будет состоять в том, что первоначально модель будет сохранена без исполнения, так как с ошибкой "Недопустимое имя контура" она не может исполняться и потом, после ввода штриховки и именования контура, надо будет вернуться к программе модели и её исполнить. Имена контуров - это строки не более, чем из 6 символов, которые "подаются" этим функциям в виде либо символьных переменных, либо в виде символьных констант.

Функция GOEXT позволяет объединить несколько чертежей под каким-нибудь общим смыслом. Можно переменные, сохранённые после расчётов в одном чертеже, применить в другом. Эта функция просто присваивает внутренним переменным этого чертежа значения, которые были рассчитаны для другого чертежа. И имя файла чертежа, и имя переменной в этом чертеже задаются как строки символов (т.е., если константы - то в кавычках). Имя файла может содержать путь к файлу чертежа, это значит, что он может находиться в другой директории. Если "в том" чертеже переменные поменяли своё значение после последнего обращения к ним, то, естественно, "в этом" чертеже они не поменяются, пока не будет повторно выполнена модель.

Объединять несколько чертежей можно и с помощью обмена текстами программ моделей. Используя возможность импорта/экспорта модели можно заимствовать тексты программ из других чертежей. При импорте модели текст из её файла подгружается в конце уже существующей в чертеже модели. Этот новый фрагмент можно рассматривать как подпрограмму и обращаться к ней с помощью оператора GOSUB (см. описание языка Модели). Чтобы действительно этот фрагмент был подпрограммой, в ней необходимо пометить первый оператор меткой, а все операторы STOP заменить на RETURN и последний оператор тоже должен быть RETURN. Кстати, можно всегда применять оператор RETURN вместо оператора STOP и в "головной" программе. Для "головной" программы действие операторов RETURN и STOP эквивалентны. Такое правило позволит в будущем применять эту модель в других чертежах как подпрограмму без дополнительных редактирований. Исполнение подпрограмм может испортить содержимое переменных, которые используются в вызывающей программе модели, если имена этих переменных совпадают с именами переменных, определяемых в подпрограмме. Они могут быть переопределены по типу и/или получить другие значения. Это с одной стороны проблема, но с другой стороны - способ передавать параметры подпрограмме и возвращать результаты расчётов в вызывающую программу. Обратите внимание, что операторы DIM и SAVE не изменяют значений уже существующих с такими именами переменных, если их типы совпадают. Взаимодействие операторов SAVE и DIM не исключает друг друга. Если переменная объявляется в операторе SAVE, то она всегда останется сохранённой переменной, даже, если она будет переопределена (включая изменение её типа) в операторе DIM по ходу выполнения программы Модели.